// 组件
import '../components/index';
import '../filters/index';

import Vue from 'vue';

import util from '@csii/vx-util-plugin-vue';
import {
  Loading,
  Button,
  Row,
  Col,
  Submenu,
  Menu,
  MenuItem,
  Popover,
  Slider,
  Avatar,
  Dialog,
  Carousel,
  CarouselItem,
  MessageBox,
  Notification,
  Container,
  Link,
  Form,
  FormItem,
  Input,
  InputBusiness,
  Tabs,
  TabPane,
  Table,
  TableColumn,
  Select,
  Option,
  Radio,
  Pagination,
  Autocomplete,
  Checkbox,
  RadioGroup,
  Collapse,
  CollapseItem,
  Tooltip,
  DatePicker,
  Upload,
  Alert,
  Tree,
  Progress,
  Card,
} from '@csii/vx-web';

import Message from '@/utils/message';

// 设置为 false 以阻止 vue 在启动时生成生产提示
// https://cn.vuejs.org/v2/api/#productionTip
Vue.config.productionTip = false;
// 当前环境
Vue.prototype.$env = process.env.NODE_ENV;
// 当前的 baseUrl
Vue.prototype.$baseUrl = process.env.BASE_URL;
// 当前版本
Vue.prototype.$version = process.env.VUE_APP_VERSION;
// 图片加载失败后的默认图片
Vue.prototype.$defaultImg = 'this.src="' + require('@/assets/image/common/loadFailed.png') + '"';

// Element
Vue.use(Loading.directive);
Vue.use(Button);
Vue.use(Row);
Vue.use(Col);
Vue.use(Submenu);
Vue.use(Menu);
Vue.use(MenuItem);
Vue.use(Popover);
Vue.use(Slider);
Vue.use(Avatar);
Vue.use(Dialog);
Vue.use(Carousel);
Vue.use(CarouselItem);
Vue.use(Container);
Vue.use(Link);
Vue.use(Form);
Vue.use(FormItem);
Vue.use(Input);
Vue.use(InputBusiness);
Vue.use(Tabs);
Vue.use(TabPane);
Vue.use(Table);
Vue.use(TableColumn);
Vue.use(Select);
Vue.use(Option);
Vue.use(Radio);
Vue.use(Pagination);
Vue.use(Autocomplete);
Vue.use(Checkbox);
Vue.use(RadioGroup);
Vue.use(Collapse);
Vue.use(CollapseItem);
Vue.use(Tooltip);
Vue.use(DatePicker);
Vue.use(Upload);
Vue.use(Alert);
Vue.use(Tree);
Vue.use(Progress);
Vue.use(Card);
Vue.prototype.$ELEMENT = { size: 'small', zIndex: 3000 };
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;
Vue.prototype.$confirm = MessageBox.confirm;
Vue.prototype.$prompt = MessageBox.prompt;
Vue.prototype.$notify = Notification;
Vue.prototype.$message = Message;

// 插件
Vue.use(util);
